<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Cliente extends CI_Controller {

	function __construct(){
		parent::__construct();
		if ( !$this->session->userdata('session_id') || !$this->session->userdata('logado') ){
			redirect(base_url()."principal");
		}
		$this->load->model('Cadastro_model', 'cadastro');
	}

	/* FORNECEDOR */
	
	public function index(){
		
		$dados = array(
				"busca" 		=> trim($this->input->post("strBusca")),
				"status" 		=> $this->input->post("intStatus"),
				"ordenacao" 	=> $this->input->post("strOrdenacao"),
				"modoOrdenacao" => $this->input->post("strModoOrdenacao")
		);

		$dados['cliente'] = $this->cadastro->listarCliente($dados);
		
		$this->template->LayoutBase('cadastro/cliente/index', $dados);
	}
	
	public function telaAdicionarCliente(){
		$this->template->LayoutBase('cadastro/cliente/adicionar');
	}
	
	public function adicionarCliente(){
		if (!empty($_POST)) {
			
			$dados_cliente = array(
					'tipo_cliente_loja' => "1",
					'tipo_transacao'	=> "1",
					'nome' 				=> trim($this->input->post('strNome')),
					'cnpj' 				=> trim($this->input->post('intCnpj')),
					'endereco' 			=> trim($this->input->post('strEndereco')),
					'cidade' 			=> trim($this->input->post('strCidade')),
					'bairro' 			=> trim($this->input->post('strBairro')),
					'cep' 				=> trim($this->input->post('intCep')),
					'ddd' 				=> trim($this->input->post('intDdd')),
					'telefone' 			=> trim($this->input->post('intTelefone')),
					'email' 			=> trim($this->input->post('strEmail')),
					'site' 				=> trim($this->input->post('strSite')),
					'contato' 			=> trim($this->input->post('strContato')),
					'login' 			=> trim($this->input->post('strLogin')),
					'senha' 			=> trim($this->input->post('strSenha')),
					'cpf' 				=> trim($this->input->post('intCpf')),
					'emailUsuario' 		=> trim($this->input->post('strEmail')),
					'telefoneUsuario'	=> trim($this->input->post('intTelefone'))
			);
			
			if ( $this->cadastro->adicionarCliente($dados_cliente) ) {
				$dados['cliente'] = $this->cadastro->getUltimoCliente();
				
				$dados['perfil'] = $this->cadastro->getPerfilByNome('Cliente');
				
				$dados_usuario = array(
						'perfil_id' 	=> $dados['perfil']->pfl_id,
						'fornecedor_id' => "",
						'cliente_id' 	=> $dados['cliente']->cli_id
				);
				
				if ( $this->cadastro->adicionarUsuario($dados_cliente, $dados_usuario) ){
					$dados['status'] = "ok";
					$dados['msg'] = "Cliente Cadastrado com Sucesso!";
				} else {
					$dados['status'] = "erro";
					$dados['msg'] = "Erro ao tentar cadastrar o contato do cliente!";
				}
				
			} else {
				$dados['status'] = "erro";
				$dados['msg'] = "Erro ao tentar cadastrar o cliente!";
			}
		}
		
		redirect(base_url().'cliente');
	}
	
	public function telaAlterarCliente($id = null){
		if ( $id ){
			$dados['cliente'] = $this->cadastro->getClienteById($id);
			$dados['usuario'] = $this->cadastro->getUsuarioPorId_Nome($dados);
		}
		
		$this->template->LayoutBase('cadastro/cliente/alterar', $dados);
	}
	
	public function alterarCliente(){
		try{
			$dados = array(
					'tipo_cliente_loja' => "1",
					'tipo_transacao'	=> "1",
					'cliente'			=> $this->input->post('intIdCliente'),
					'usuario'			=> $this->input->post('intIdUsuario'),
					'nome' 				=> trim($this->input->post('strNome')),
					'razao_social' 		=> trim($this->input->post('strRazaoSocial')),
					'cnpj' 				=> trim($this->input->post('intCnpj')),
					'endereco' 			=> trim($this->input->post('strEndereco')),
					'cidade' 			=> trim($this->input->post('strCidade')),
					'bairro' 			=> trim($this->input->post('strBairro')),
					'cep' 				=> trim($this->input->post('intCep')),
					'ddd' 				=> trim($this->input->post('intDdd')),
					'telefone' 			=> trim($this->input->post('intTelefone')),
					'email' 			=> trim($this->input->post('strEmail')),
					'site' 				=> trim($this->input->post('strSite')),
					'contato' 			=> trim($this->input->post('strContato')),
					'login' 			=> trim($this->input->post('strLogin')),
					'senha' 			=> trim($this->input->post('strSenha')),
					'cpf' 				=> trim($this->input->post('intCpf')),
					'emailUsuario' 		=> trim($this->input->post('strEmail')),
					'telefoneUsuario'	=> trim($this->input->post('intTelefone'))
			);
		
			if ( $this->cadastro->alterarCliente($dados) ) {
				if ( $this->cadastro->alterarUsuario($dados) ){
					$dados['status'] = "ok";
					$dados['msg'] = "Cliente Alterado com Sucesso!";
				} else {
					$dados['status'] = "erro";
					$dados['msg'] = "Erro ao tentar alterar os dados do cliente!";
				}
			} else {
				$dados['status'] = "erro";
				$dados['msg'] = "Erro ao tentar alterar os dados do cliente!";
			}
		
		} catch (Exception $e) {
			die($e->getMessage());
		}
		
		redirect(base_url().'cliente');
	}
	
	public function excluirCliente($id = null){
		if ( $id ){
			$dados['cliente'] = $this->cadastro->getClienteById($id);
			
			if ( $dados['usuario'] = $this->cadastro->getUsuarioPorId_Nome($dados) ) {

				if ( $this->cadastro->excluirUsuario($dados['usuario']->usu_id) ){

					if ( $this->cadastro->excluirCliente($id) ){
						$dados['status'] = "ok";
						$dados['msg'] = "Cliente excluído com sucesso!";
					} else {
						$dados['status'] = "erro";
						$dados['msg'] = "O Sistema não conseguiu excluir o Cliente!";
					}
				
				} else {
					$dados['status'] = "erro";
					$dados['msg'] = "O Sistema não conseguiu excluir o contato do Cliente!";
				}
				
			} else {
				$dados['status'] = "erro";
				$dados['msg'] = "O Sistema não conseguiu localizar o contato do Cliente para ser Excluído!";
			}
		}
		
		redirect(base_url().'cliente');
	}
	
}